#pragma once

#include <vector>
#include "AngleSpace.h"
#include <nlopt.hpp>

using namespace std;
class AngleFlattener
{
public:
	AngleFlattener(MItMeshEdge* edgeIt, MItMeshPolygon* faceItIn, MItMeshVertex* vertsItIn, vector<int> seamVerts, vector<int> seamEdges);
	~AngleFlattener(void);
	AngleSpace* flattenAngleSpace(int type, int time);

private:
	//double constraints(const std::vector<double> &x, std::vector<double> &grad, void *data);
	//double objectiveFunction(const std::vector<double> &x, std::vector<double> &grad, void *my_func_data);

	AngleSpace* as;

};

